# $Id: PKGBUILD 178951 2013-03-01 10:19:37Z andrea $
# Maintainer: Eric Bélanger <eric@archlinux.org>

pkgbase=avidemux
pkgname=('avidemux-cli' 'avidemux-gtk' 'avidemux-qt')
pkgver=2.5.6
pkgrel=6
arch=('i686' 'x86_64')
license=('GPL')
url="http://fixounet.free.fr/avidemux/"
makedepends=('cmake' 'libxslt' 'gtk2' 'qt4' 'jack' 'libvorbis' 'sdl' 'libxv' \
             'alsa-lib' 'lame' 'xvidcore' 'faad2' 'faac' 'x264' 'libsamplerate' \
             'opencore-amr' 'yasm' 'mesa' 'libvpx' 'libpulse' 'libva')
options=('!makeflags')
source=(http://downloads.sourceforge.net/avidemux/avidemux_${pkgver}.tar.gz)
sha1sums=('47205c236bf6a4435b9d4dd944493c7b7e2752f5')

build() {
  cd "${srcdir}/${pkgbase}_${pkgver}"
  mkdir build
  cd build
  cmake -D CMAKE_INSTALL_PREFIX=/usr -D CMAKE_BUILD_TYPE=Release -D CMAKE_SKIP_RPATH=ON -D GTK=1 -D QT4=1 ..
  make

# plugin build expects libraries to be already installed; we fake a prefix
# in build/ by symlinking all libraries to build/lib/
  mkdir -p lib
  cd lib
  find ../avidemux -name '*.so*' | xargs ln -sft .
  cd ../../plugins
  mkdir build
  cd build
  cmake -D CMAKE_INSTALL_PREFIX=/usr -D AVIDEMUX_SOURCE_DIR="${srcdir}/avidemux_${pkgver}" \
    -D AVIDEMUX_CORECONFIG_DIR="${srcdir}/avidemux_${pkgver}/build/config" \
    -D AVIDEMUX_INSTALL_PREFIX="${srcdir}/avidemux_${pkgver}/build" \
    -D CMAKE_BUILD_TYPE=Release -D CMAKE_SKIP_RPATH=ON ..
  make
}

package_avidemux-cli() {
  pkgdesc="A graphical tool to edit video (filter/re-encode/split)"
  depends=('libxml2' 'sdl' 'fontconfig' 'libvpx' 'libva')
  optdepends=('lame: for the corresponding audio encoder plugin'
              'faac: for the corresponding audio encoder plugin'
              'faad2: for the corresponding audio decoder plugin'
              'opencore-amr: for the corresponding audio decoder plugin'
              'jack: for the corresponding audio device plugin'
              'libpulse: for the corresponding audio device plugin'
              'sdl: for the corresponding audio device plugin'
              'x264: for the corresponding video encoder plugin'
              'xvidcore: for the corresponding video encoder plugin')
  provides=('avidemux')
  conflicts=('avidemux')
  replaces=('avidemux')

  cd "${srcdir}/${pkgbase}_${pkgver}/build"
  make DESTDIR="${pkgdir}" install

  cd "${srcdir}/${pkgbase}_${pkgver}/plugins/build"
  make DESTDIR="${pkgdir}" install
  rm -r "${pkgdir}"/usr/share/avidemux
  rm "${pkgdir}"/usr/bin/avidemux2_{gtk,qt4}
  rm "${pkgdir}"/usr/lib/*{_gtk,_qt4,Gtk,QT4}.so
  rm "${pkgdir}"/usr/lib/ADM_plugins/videoEncoder/x264/*{Gtk,Qt}.so
  rm "${pkgdir}"/usr/lib/ADM_plugins/videoEncoder/xvid/*{Gtk,Qt}.so
  rm "${pkgdir}"/usr/lib/ADM_plugins/videoFilter/*{_gtk,_qt4}.so

  ln -s /usr/lib/ADM_plugins/videoEncoder/libADM_vidEnc_xvid.so "${pkgdir}/usr/lib/libADM_vidEnc_xvid.so"
  ln -s /usr/lib/ADM_plugins/videoEncoder/libADM_vidEnc_x264.so "${pkgdir}/usr/lib/libADM_vidEnc_x264.so"

  install -D -m644 ../../avidemux_icon.png "${pkgdir}/usr/share/pixmaps/avidemux.png"
  install -D -m644 ../../man/avidemux.1 "${pkgdir}/usr/share/man/man1/avidemux.1"
}

package_avidemux-gtk() {
  pkgdesc="A graphical tool to edit video (filter/re-encode/split) - GTK GUI"
  depends=("avidemux-cli=${pkgver}" 'gtk2' 'libxv' 'desktop-file-utils')
  install=avidemux.install

  cd "${srcdir}/${pkgbase}_${pkgver}"
  install -D -m755 build/avidemux/avidemux2_gtk "${pkgdir}/usr/bin/avidemux2_gtk"

  install -d "${pkgdir}"/usr/lib/ADM_plugins/videoEncoder/{x264,xvid}
  install -d "${pkgdir}"/usr/lib/ADM_plugins/videoFilter

  install -D -m755 build/lib/*{_gtk,Gtk}.so "${pkgdir}/usr/lib"
  install -D -m755 plugins/build/ADM_videoEncoder/ADM_vidEnc_x264/gtk/*Gtk.so "${pkgdir}/usr/lib/ADM_plugins/videoEncoder/x264"
  install -D -m755 plugins/build/ADM_videoEncoder/ADM_vidEnc_xvid/gtk/*Gtk.so "${pkgdir}/usr/lib/ADM_plugins/videoEncoder/xvid"
  install -D -m755 plugins/build/ADM_videoFilters/*/*_gtk.so "${pkgdir}/usr/lib/ADM_plugins/videoFilter"

  install -D -m644 avidemux2-gtk.desktop "${pkgdir}/usr/share/applications/avidemux-gtk.desktop"
  sed -i "s|\[\$e\]||" "${pkgdir}/usr/share/applications/avidemux-gtk.desktop"
}

package_avidemux-qt() {
  pkgdesc="A graphical tool to edit video (filter/re-encode/split) - QT GUI"
  depends=("avidemux-cli=${pkgver}" 'qt4')
  install=avidemux.install

  cd "${srcdir}/${pkgbase}_${pkgver}"
  install -D -m755 build/avidemux/avidemux2_qt4 "${pkgdir}/usr/bin/avidemux2_qt4"
  install -d "${pkgdir}"/usr/lib/ADM_plugins/videoEncoder/{x264,xvid}
  install -d "${pkgdir}"/usr/lib/ADM_plugins/videoFilter

  install -D -m755 build/lib/*{_qt4,QT4}.so "${pkgdir}/usr/lib"
  install -D -m755 plugins/build/ADM_videoEncoder/ADM_vidEnc_x264/qt4/*Qt.so "${pkgdir}/usr/lib/ADM_plugins/videoEncoder/x264"
  install -D -m755 plugins/build/ADM_videoEncoder/ADM_vidEnc_xvid/qt4/*Qt.so "${pkgdir}/usr/lib/ADM_plugins/videoEncoder/xvid"
  install -D -m755 plugins/build/ADM_videoFilters/*/*_qt4.so "${pkgdir}/usr/lib/ADM_plugins/videoFilter"

  install -d "${pkgdir}/usr/share/avidemux/i18n"
  install -D -m644 build/po/*.qm "${pkgdir}/usr/share/avidemux/i18n"

  install -D -m644 avidemux2.desktop "${pkgdir}/usr/share/applications/avidemux-qt.desktop"
  sed -i 's/Name=avidemux2/Name=avidemux (QT)/' "${pkgdir}/usr/share/applications/avidemux-qt.desktop"
  sed -i 's/avidemux2_gtk/avidemux2_qt4/' "${pkgdir}/usr/share/applications/avidemux-qt.desktop"
}
